NexusPi Git Node
Commit 9529fa8a229fc7c88a988d402e29e2a8b704a7d3
Parents : 8dca5d5
Author : James L <jrl290@gmail.com>
Date : 2026-04-26T20:47:50-04:00
Rename to RTNode; clean up env and binary names
- PIO envs: heltec_V3_boundary → rtnode_heltec_v3
heltec_V4_boundary_16mb → rtnode_heltec_v4
heltec_V4_boundary-local → rtnode_heltec_v4-local
- custom_variant: heltec32v3 → heltec_v3
heltec32v4_boundary_16mb → heltec_v4
- Binary prefix: rnode_firmware_ → rtnode_ (extra_script.py)
- Output: rtnode_heltec_v3.bin, rtnode_heltec_v4.bin (+ _merged.bin)
- Web flasher manifests updated to new binary names
- flash.py BOARD_PROFILES updated
- Makefile release-pio target updated
- PSRAM: V4 always has PSRAM (compile-time); V3 detects at runtime
Changes
9 files changed, 29 insertions(+), 29 deletions(-)
Diff
diff --git a/Makefile b/Makefile
index 414a163..8562066 100755
--- a/Makefile
+++ b/Makefile
@@ -286,12 +286,12 @@ release-all: console-site spiffs-image release-tbeam release-tbeam_sx1262 releas
# The archive (rtnode_firmware.zip) is the primary distribution artefact consumed
# by flash.py. Individual binaries are stored flat inside the zip.
release-pio:
- pio run -e heltec_V4_boundary_16mb -e heltec_V3_boundary
+ pio run -e rtnode_heltec_v4 -e rtnode_heltec_v3
python3 -c "\
import zipfile, os, sys; \
variants = [ \
- ('.pio/build/heltec_V4_boundary_16mb', 'rnode_firmware_heltec32v4_boundary_16mb.bin'), \
- ('.pio/build/heltec_V3_boundary', 'rnode_firmware_heltec32v3.bin'), \
+ ('.pio/build/rtnode_heltec_v4', 'rtnode_heltec_v4.bin'), \
+ ('.pio/build/rtnode_heltec_v3', 'rtnode_heltec_v3.bin'), \
]; \
missing = [(d,n) for d,n in variants if not os.path.isfile(os.path.join(d,n))]; \
[sys.exit(f'Missing: {os.path.join(d,n)}') for d,n in missing]; \
diff --git a/README.md b/README.md
index 3f811cd..5c70bea 100755
--- a/README.md
+++ b/README.md
@@ -88,20 +88,20 @@ git clone https://github.com/jrl290/RTNode-HeltecV4.git
cd RTNode-HeltecV4
# Build for V4
-pio run -e heltec_V4_boundary_16mb
+pio run -e rtnode_heltec_v4
# Build for V3
-pio run -e heltec_V3_boundary
+pio run -e rtnode_heltec_v3
# Flash (via PlatformIO)
-pio run -e heltec_V4_boundary_16mb -t upload
+pio run -e rtnode_heltec_v4 -t upload
# Or create a merged binary and flash with the utility
python flash.py --merge-only # creates merged firmware bin
python flash.py # flash it (auto-detects board)
# Monitor serial output (optional)
-pio device monitor -e heltec_V4_boundary
+pio device monitor -e rtnode_heltec_v4
```
### Option C: Manual esptool Flash
@@ -364,11 +364,11 @@ Set the transport node's **Local TCP Server** to **Enabled** (port 4242).
| `Display.h` | OLED display layout — transport node status page |
| `flash.py` | Flash utility — list serial ports, download from GitHub, merge & flash firmware |
| `Boards.h` | Board variant definitions for V3 and V4 |
-| `platformio.ini` | Build targets: `heltec_V3_boundary`, `heltec_V4_boundary_16mb`, and `heltec_V4_boundary-local` |
+| `platformio.ini` | Build targets: `rtnode_heltec_v3`, `rtnode_heltec_v4`, and `rtnode_heltec_v4-local` |
### Library Patches
-The firmware depends on [microReticulum](https://github.com/attermann/microReticulum) `0.2.4`, automatically fetched by PlatformIO on first build. After the first build, the library sources under `.pio/libdeps/heltec_V4_boundary/microReticulum/src/` need the patches described in "Routing & Memory Customizations" above. Key files modified:
+The firmware depends on [microReticulum](https://github.com/attermann/microReticulum) `0.2.4`, automatically fetched by PlatformIO on first build. After the first build, the library sources under `.pio/libdeps/rtnode_heltec_v4/microReticulum/src/` need the patches described in "Routing & Memory Customizations" above. Key files modified:
| File | Changes |
|------|---------|
diff --git a/docs/manifest-v3-full.json b/docs/manifest-v3-full.json
index 16635a5..275363a 100644
--- a/docs/manifest-v3-full.json
+++ b/docs/manifest-v3-full.json
@@ -6,7 +6,7 @@
"chipFamily": "ESP32-S3",
"parts": [
{
- "path": "https://github.com/jrl290/RTNode-HeltecV4/releases/latest/download/rnode_firmware_heltec32v3_merged.bin",
+ "path": "https://github.com/jrl290/RTNode-HeltecV4/releases/latest/download/rtnode_heltec_v3_merged.bin",
"offset": 0
}
]
diff --git a/docs/manifest-v3.json b/docs/manifest-v3.json
index b83fcea..2a6b58f 100644
--- a/docs/manifest-v3.json
+++ b/docs/manifest-v3.json
@@ -5,7 +5,7 @@
"chipFamily": "ESP32-S3",
"parts": [
{
- "path": "https://github.com/jrl290/RTNode-HeltecV4/releases/latest/download/rnode_firmware_heltec32v3_merged.bin",
+ "path": "https://github.com/jrl290/RTNode-HeltecV4/releases/latest/download/rtnode_heltec_v3_merged.bin",
"offset": 65536
}
]
diff --git a/docs/manifest-v4-16mb.json b/docs/manifest-v4-16mb.json
index 434d6dd..631c183 100644
--- a/docs/manifest-v4-16mb.json
+++ b/docs/manifest-v4-16mb.json
@@ -5,7 +5,7 @@
"chipFamily": "ESP32-S3",
"parts": [
{
- "path": "https://github.com/jrl290/RTNode-HeltecV4/releases/latest/download/rnode_firmware_heltec32v4_boundary_16mb_merged.bin",
+ "path": "https://github.com/jrl290/RTNode-HeltecV4/releases/latest/download/rtnode_heltec_v4_merged.bin",
"offset": 65536
}
]
diff --git a/docs/manifest-v4-full.json b/docs/manifest-v4-full.json
index 13d17d2..1df0dd0 100644
--- a/docs/manifest-v4-full.json
+++ b/docs/manifest-v4-full.json
@@ -6,7 +6,7 @@
"chipFamily": "ESP32-S3",
"parts": [
{
- "path": "https://github.com/jrl290/RTNode-HeltecV4/releases/latest/download/rnode_firmware_heltec32v4_boundary_16mb_merged.bin",
+ "path": "https://github.com/jrl290/RTNode-HeltecV4/releases/latest/download/rtnode_heltec_v4_merged.bin",
"offset": 0
}
]
diff --git a/extra_script.py b/extra_script.py
index 0fba4c5..ed193da 100755
--- a/extra_script.py
+++ b/extra_script.py
@@ -4,7 +4,7 @@ import shutil
Import("env")
-env.Replace(PROGNAME="rnode_firmware_%s" % env.GetProjectOption("custom_variant"))
+env.Replace(PROGNAME="rtnode_%s" % env.GetProjectOption("custom_variant"))
print("PROGNAME:", env.subst("$PROGNAME"))
#
@@ -119,7 +119,7 @@ def device_provision(env):
env.Execute("rnodeconf --product e0 --model e9 --hwrev 1 --rom " + env.subst("$UPLOAD_PORT"))
elif variant in ("lora32v21", "lora32v21_local"):
env.Execute("rnodeconf --product b1 --model b9 --hwrev 1 --rom " + env.subst("$UPLOAD_PORT"))
- elif variant in ("heltec32v4", "heltec32v4_local", "heltec32v4_boundary_local"):
+ elif variant in ("heltec32v4", "heltec32v4_local", "heltec_v4", "heltec_v4_local"):
env.Execute("rnodeconf --product b1 --model b9 --hwrev 1 --rom " + env.subst("$UPLOAD_PORT"))
elif variant in ("rak4631", "rak4631_local"):
env.Execute("rnodeconf --product 10 --model 12 --hwrev 1 --rom " + env.subst("$UPLOAD_PORT"))
diff --git a/flash.py b/flash.py
index 8bfc2f8..dd27777 100755
--- a/flash.py
+++ b/flash.py
@@ -89,10 +89,10 @@ BOARD_PROFILES = {
"flash_mode": "qio", # ESP32-S3 PSRAM requires QIO — DIO disables PSRAM
"flash_variants": {
"16MB": {
- "pio_env": "heltec_V4_boundary_16mb",
- "build_dir": ".pio/build/heltec_V4_boundary_16mb",
- "firmware_bin": "rnode_firmware_heltec32v4_boundary_16mb.bin",
- "merged_bin": "rnode_firmware_heltec32v4_boundary_16mb_merged.bin",
+ "pio_env": "rtnode_heltec_v4",
+ "build_dir": ".pio/build/rtnode_heltec_v4",
+ "firmware_bin": "rtnode_heltec_v4.bin",
+ "merged_bin": "rtnode_heltec_v4_merged.bin",
},
},
},
@@ -103,10 +103,10 @@ BOARD_PROFILES = {
"flash_mode": "dio",
"flash_variants": {
"8MB": {
- "pio_env": "heltec_V3_boundary",
- "build_dir": ".pio/build/heltec_V3_boundary",
- "firmware_bin": "rnode_firmware_heltec32v3.bin",
- "merged_bin": "rnode_firmware_heltec32v3_merged.bin",
+ "pio_env": "rtnode_heltec_v3",
+ "build_dir": ".pio/build/rtnode_heltec_v3",
+ "firmware_bin": "rtnode_heltec_v3.bin",
+ "merged_bin": "rtnode_heltec_v3_merged.bin",
},
},
},
diff --git a/platformio.ini b/platformio.ini
index a72b3f7..ec0ad40 100755
--- a/platformio.ini
+++ b/platformio.ini
@@ -309,10 +309,10 @@ lib_deps =
${env.lib_deps}
XPowersLib@^0.2.1
-[env:heltec_V3_boundary]
+[env:rtnode_heltec_v3]
platform = espressif32
board = heltec_wifi_lora_32_V3
-custom_variant = heltec32v3
+custom_variant = heltec_v3
board_build.filesystem = littlefs
; Flash / memory layout for 8MB flash
; PSRAM: V3 ESP32-S3FN8 has NO PSRAM — do NOT set BOARD_HAS_PSRAM or psram_type
@@ -353,10 +353,10 @@ lib_deps =
${env.lib_deps}
XPowersLib@^0.2.1
-[env:heltec_V4_boundary_16mb]
+[env:rtnode_heltec_v4]
platform = espressif32
board = esp32-s3-devkitc-1
-custom_variant = heltec32v4_boundary_16mb
+custom_variant = heltec_v4
board_build.filesystem = littlefs
; Flash / memory layout for 16MB flash + 2MB PSRAM
board_upload.flash_size = 16MB
@@ -381,10 +381,10 @@ lib_deps =
XPowersLib@^0.2.1
monitor_filters = esp32_exception_decoder
-[env:heltec_V4_boundary-local]
+[env:rtnode_heltec_v4-local]
platform = espressif32
board = esp32-s3-devkitc-1
-custom_variant = heltec32v4_boundary_local
+custom_variant = heltec_v4_local
board_build.filesystem = littlefs
board_upload.flash_size = 16MB
board_upload.maximum_size = 16777216
Served by rngit 1.4.2 - Generated in 0.03s